#pragma once
#include <transfer/ITransfer.h>
#include "LocalConfigProps.h"
namespace ecarx::transfer::lcfg {
class LocalConfigTransfer: public ITransfer {
  class LocalConfigTransferInternal;
  LocalConfigTransferInternal* mImpl;
 public:
  LocalConfigTransfer();
  ~LocalConfigTransfer();
  bool open() override;
  bool close() override;
  bool write(const Signal &) override;
  const std::optional<Signal> read(const int32_t signalId) const override;
  NetState getState() override;
  void registerStateHandler(NetStateCallback&& _callback) override;
  void onSignalChanged(SignalChangeCallback && callback) override;
};
}  // namespace ecarx::transfer::lcfg
